﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
//using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace AdatbazisProjekt
{
    public partial class UjAlkatreszBevitel : Form
    {
		// Uj alkatresz bevitelere alkalmas feluletet implementalo osztaly
		DataAlkatreszek alk;
		bool Err;
        UjTermekHozzaAdas fUjTermekHozzaadas;

        public UjAlkatreszBevitel(UjTermekHozzaAdas f, string alkatreszTipus, string tulajdonsag1, string mertekegyseg1, string tulajdonsag2, string mertekegyseg2, string tulajdonsag3, string mertekegyseg3)
        {
			// az alkatresz tipusanak megfelelo komponenseket hagyjuk megjelenni a formon
            alk = new DataAlkatreszek(ref Err);
            fUjTermekHozzaadas = f;
            InitializeComponent();
            AlaktreszTipusLabel.Text = alkatreszTipus;
            Tulajdonsag1Label.Text = tulajdonsag1;
            Mertekegyseg1Label.Text = mertekegyseg1;
            if (tulajdonsag2 == "")
            {
                Tulajdonsag2Label.Text = "";
                Tulajdonsag2Label.Visible = false;
                Ertek2TextBox.Visible = false;
                Mertekegyseg2Label.Visible = false;
            }
            else
            {
                Tulajdonsag2Label.Text = tulajdonsag2;
                Mertekegyseg2Label.Text = mertekegyseg2;
            }

            if (tulajdonsag3 == "")
            {
                Tulajdonsag3Label.Text = "";
                Tulajdonsag3Label.Visible = false;
                Ertek3TextBox.Visible = false;
                Mertekegyseg3Label.Visible = false;
            }
            else
            {
                Tulajdonsag3Label.Text = tulajdonsag3;
                Mertekegyseg3Label.Text = mertekegyseg3;
            }

            gyartoFeltolt();

        }

		public void gyartoFeltolt()
		{
			// gyarto combo feltolteset vegzo metodus
            GyartoComboBox.DropDownStyle = ComboBoxStyle.DropDownList;
			GyartoComboBox.DataSource = alk.GetGyartok( ref Err);
		}

		private void UjAlkatreszBevitel_Load(object sender, EventArgs e)
		{

		}

		private void UjAlkatreszNev_TextBox_TextChanged(object sender, EventArgs e)
		{

		}

        private void MegseButton_Click(object sender, EventArgs e)
        {
			// Form bezaras
            this.Close();
        }

        private void Ertek1TextBox_TextChanged(object sender, EventArgs e)
        {
			
            int temp;
            if (Ertek1TextBox.Text != "")  // vizsgalat arra szolgal h akkor ne irjunk ki hibat mikor a szoveg a hibauzenet kiirasa utan valtozott "" stringre
            {
                try
                {
                    temp = Int16.Parse(Ertek1TextBox.Text);
                }
                catch (Exception)
                {
                    MessageBox.Show("Ebbe a mezobe kizarolag szamot irhat, maximum hat szamjegyig! Kerem probalja ujra figyelmesebben");
                    Ertek1TextBox.Text = "";
                }
            }            
        }

        private void Ertek2TextBox_TextChanged(object sender, EventArgs e)
        {
            int temp;
            if (Ertek2TextBox.Text != "")  // vizsgalat arra szolgal h akkor ne irjunk ki hibat mikor a szoveg a hibauzenet kiirasa utan valtozott "" stringre
            {
                try
                {
                    temp = Int32.Parse(Ertek2TextBox.Text);
                }
                catch (Exception)
                {
                    MessageBox.Show("Ebbe a mezobe kizarolag szamot irhat, maximum hat szamjegyig! Kerem probalja ujra figyelmesebben");
                    Ertek2TextBox.Text = "";
                  
                }
            }
        }

        private void Ertek3TextBox_TextChanged(object sender, EventArgs e)
        {
            int temp;
            if (Ertek2TextBox.Text != "")  // vizsgalat arra szolgal h akkor ne irjunk ki hibat mikor a szoveg a hibauzenet kiirasa utan valtozott "" stringre
            {
                try
                {
                    temp = Int16.Parse(Ertek2TextBox.Text);
                }
                catch (Exception)
                {
                    MessageBox.Show("Ebbe a mezobe kizarolag szamot irhat, maximum hat szamjegyig! Kerem probalja ujra figyelmesebben");
                    Ertek2TextBox.Text = "";
                    
                }
            }
        }

        private void bHozzaad_Click(object sender, EventArgs e)
        {
		//Adatbazishoz valo hozzadasa az uj alkatresznek 
            Err = false;
            bool ok = true;

            if (UjAlkatreszNev_TextBox.Text == "")
            {
                MessageBox.Show("Hiba, a beviteli mezo ures!");
                ok = false;
            }
            else
                if (GyartoComboBox.Text == "")
                {
                    MessageBox.Show("Hiba, a beviteli mezo ures!");
                    ok = false;
                }
                else
                    if (Ertek1TextBox.Text == "")
                    {
                        MessageBox.Show("Hiba, a beviteli mezo ures!");
                        ok = false;
                    }
                    else if (Tulajdonsag2Label.Text != "" && Ertek2TextBox.Text == "")
                    {
                        MessageBox.Show("Hiba, a beviteli mezo ures! itt");
                        ok = false;
                    }

            if (ok)
            {
                switch (AlaktreszTipusLabel.Text)
                {
                    case "Processzor": alk.UjProcesszor(UjAlkatreszNev_TextBox.Text, Convert.ToInt32(Ertek1TextBox.Text), Convert.ToInt32(Ertek2TextBox.Text), Ertek3TextBox.Text, GyartoComboBox.SelectedItem.ToString(), ref Err); break;
                    case "Merevlemez": alk.UjMerevlemez(UjAlkatreszNev_TextBox.Text, Ertek1TextBox.Text, GyartoComboBox.SelectedItem.ToString(), ref Err); break;
                    case "Kepernyo": alk.UjKepernyo(UjAlkatreszNev_TextBox.Text, Ertek1TextBox.Text, GyartoComboBox.SelectedItem.ToString(), ref Err); break;
                    case "Videokartya": alk.UjVideokartya(UjAlkatreszNev_TextBox.Text, Ertek1TextBox.Text, GyartoComboBox.SelectedItem.ToString(), ref Err); break;
                    case "RAM": alk.UjRAM(UjAlkatreszNev_TextBox.Text, Ertek1TextBox.Text, Ertek2TextBox.Text, GyartoComboBox.SelectedItem.ToString(), ref Err); break;
                }
                if (!Err)
                {
                    MessageBox.Show("A bevitel az adatbazisba sikeres volt!");
                    fUjTermekHozzaadas.comboFeltoltes();
                    this.Close();
                }
                else
                {
                    MessageBox.Show("A bevitel sajnos sikertelen volt egy varatlan hiba miatt!");
                }
            }
        }

        private void MasGyartoButton_Click(object sender, EventArgs e)
        {
			// Amennyiben nincs szamunkra megfelelo gyarto a comboban , erre a gombra kattintva megjelnik egy form aminn uj gyartot szurhatunk be
            KategoriaGyartoFrom temp = new KategoriaGyartoFrom("Uj gyarto", this, null);
            temp.Show();
        }
    }
}
